一、前言
在上一篇中了解了HTTP、Request和Response的基本概念,
使用WebAPI時Client會透過HTTP向Server發送Request,Server處理完之後,再透過Response回傳資料。
不過如果只是說「向伺服器發送一個Request」其實還不夠完整,
因為伺服器還需要知道:
我到底想要做什麼?
例如今天想查詢一本書的資料,和今天想把一筆新的資料送到伺服器,這兩種操作的目的並不一樣,
因此HTTP Request裡面會有一個很重要的部分就是HTTP Method。
⸻
二、什麼是HTTP Method?
HTTP Method可以想像成是告訴伺服器:
「我這次Request想要進行什麼操作?」
不同的Method代表不同的目的。
常見的HTTP Method有:
⸻
三、GET 是什麼?
GET最主要的用途就是:
取得資料
例如想用書籍API查詢一本書的資訊,
可以向API發送GET Request,告訴伺服器我想取得某本書的資料,
伺服器收到Request後,就會根據條件尋找資料,再透過Response回傳。
可以簡化成:
Client→GET Request「請給我這本書的資料」→Serve→Response「這是你要的書籍資料」→Client
所以如果今天只是想「查詢」資料,就會使用GET。
例如:
GET /books
意思可以簡單理解成:
「請給我books的相關資料。」
如果還有搜尋條件,也可以把條件放在URL中。
例如:
GET /books?title=HarryPotter
這時候就可以理解成:
「請幫我搜尋書名是HarryPotter的資料。」
這也是之後實際操作書籍API時會遇到的內容。
⸻
**四、POST 是什麼?
和GET不同,POST通常是用來把資料送給伺服器
例如今天有一個網站可以讓使用者註冊帳號
當我們填寫:
姓名:王小明
Email:example@email.com
按下註冊之後,網站就需要把這些資料送到伺服器
這時候就可能使用POST Request
可以簡化成:
Client→POST Request「我要送出這些資料」→Server→處理資料→Response「資料已收到」→Client
所以GET和POST最大的差別,
可以簡單記成:
Method 主要用途
GET 取得資料
POST 送出資料
當然實際上的 HTTP 規範還有更多細節,但在目前的學習階段,先理解這個基本差異就可以了。
⸻
**五、總結
今天主要認識了HTTP Method中最常見的GET和POST,
GET主要用來取得資料,而POST通常用來將資料送給伺服器。
搭配上一篇學到的Request和Response,就可以把目前的Web API運作方式理解成:
Client→Request→HTTP Method→Server→Response→Client
到目前為止已經從API的基本概念,慢慢了解到 HTTP、Request、Response,還有GET 和 POST,
不過當我們使用 GET 查詢資料時,常常會看到網址後面出現 ?、& 或一些看起來像條件的文字,
例如:
/books?title=Harry
下一篇會繼續了解
URL、Endpoint 和 Parameters 是什麼?